///////////////////////////////////////////////////////////////////////////
//
//  @ File      :   res_style.h
//  @ Author    :   zhoukaifeng<zhoukaifeng@kingsoft.com>
//  @ DateTime  :   2014-10-26 19:01:29 
//  @ Brief     :
//
///////////////////////////////////////////////////////////////////////////

#ifndef __RES_STYLE_2014_10_26_19_01_29__
#define __RES_STYLE_2014_10_26_19_01_29__

#include "stdafx.h"
#include <map>


class Style
{
public:
    Style();
    ~Style();

    ATTRIBUYE_MAP_BEGIN()
        ATTRIBUTE_ADD("name", SetName)
        ATTRIBUTE_ADD("crtext", SetTextColor)
    ATTRIBUYE_MAP_END()

    void SetName(const CString& strAttrName, const CString& strValue);
    void SetTextColor(const CString& strAttrName, const CString& strValue);

private:
    DWORD HexStringToDWORD(const CString& strHex);

private:
    DWORD   m_dwTextColor;
    CString m_strName;
};


class StyleManager
{
    DECLARE_SINGLETON(StyleManager)
public:
    BOOL LoadStyleFile(const CString& strResID);
    BOOL GetStyle(const CString& strClassName, Style& styleObj);

private:
    std::map<CString, Style> m_mapStylePool;
};


#endif